package com.wyz.saas.api.core

interface IObservable<T> {

    fun addObserver(observer: IObserver<T>)

    fun removeObserver(observer: IObserver<T>): Boolean

    fun clearObserver() : Set<IObserver<T>>

    fun notify(state: State, type: Collection<T>, throwable: Throwable?=null)

}